Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2023-AAAI-[GradPU]Positive-Unlabeled Learning via Gradient Penalty and Positive Upweighting

https://ojs.aaai.org/index.php/AAAI/article/view/25889

Introduction

PUの全般的なサーベイは📄Arrow icon of a page link2020-Survey-Learning from positive and unlabeled data: a survey

Sample Selectionでは、Unlabeledの中のPを除外するか重みを減らすことで、実質的にPN学習に帰着させる。

Cost-sensitiveでは、重みつきのPN学習だとみなして学ぶものである。

現状のPU learningが抱えている重大な問題として、Pのデータに過学習して、決定境界がU側に寄る(U側が過剰にPとして扱われてしまう)。

この論文では、Wasserstein距離による理論的解析を行い、その結果をもとにGradientベースの正則化を提案した。また、学習しづらいPositiveには高い損失を付与したらしい。

問題設定

  • サンプルはxRd\mathbf{x} \in \mathbb{R}^dで、Ground-truthのラベルはy{1,+1}y \in \{ -1, +1 \}である。
  • Class Priorはπ=Pr(y=+1)\pi = Pr(y=+1)である。
  • ラベルがついている場合はs=1s=1、付いてない場合はs=0s=0とする。

提案手法

既存のPU learningの問題

与えられたPositiveのサンプルに過学習してしまう。

uPUの学習式は以下の通り。

R(f)=πE+[l(f(x))l(f(x))]+EX[l(f(x))]R(f) = \pi \mathbb{E}_+[l(f(\mathbf{x})) - l(-f(\mathbf{x}))] + \mathbb{E}_X[l(-f(\mathbf{x}))]

ここで、EX\mathbb{E}_Xについて、解きほぐすことになるが、EX=πE++(1π)E\mathbb{E}_X = \pi \mathbb{E}_{+^\prime} + (1- \pi) \mathbb{E}_{-^\prime}であると考える。つまり、Unlabeledの中のPの分布は、与えられたPのサンプルの分布と違うと仮定する=Domain Shift。

この中で、あきらかにマイナスを含む項で、ある意味矛盾を含む項であるといえる。実際、DNNで学習すると過学習になるので、これを 📄Arrow icon of a page link2017-NIPS-[nnPU] Positive-Unlabeled Learning with Non-Negative Risk Estimator のように、max関数で最低でも0と制限することで、ある程度解決できた。ここでの式は以下のように書き直せる。

R(f)=πE+[l(f(x))]+max(0,πE+[l(f(x))]+EX[l(f(x))])=πE+[l(f(x))]+max(0,πE+[l(f(x))]+(1π)E[l(f(x))+πE+[l(f(x)])R(f) = \pi \mathbb{E}_+[l(f(\mathbf{x}))] + \max(0, - \pi \mathbb{E}_+[l(-f(\mathbf{x}))] + \mathbb{E}_X[l(-f(\mathbf{x}))]) \\ = \pi \mathbb{E}_+[l(f(\mathbf{x}))] + \max(0, -\pi \mathbb{E}_+[l(-f(\mathbf{x}))] + (1 - \pi) \mathbb{E}_{-^\prime}[l(-f(\mathbf{x})) + \pi \mathbb{E}_{+^\prime}[l(-f(\mathbf{x})])

しかし、それでも、訓練の早期段階でNegative in Unlabeledがうまく学習できていないときは、E[l(f(x))]\mathbb{E}_{-^\prime}[l(-f(\mathbf{x}))]が大きくなり、πE+[l(f(x))]πE+[l(f(x))]\pi \mathbb{E}_{+^\prime}[l(-f(\mathbf{x}))] - \pi \mathbb{E}_+ [l(-f(\mathbf{x}))]の最適化になっている。もし、PositiveとPositive in Unlabeledが同じものならばこれの最適化は0になってしかるべきであるが、分布が違う=選択バイアスがあると、overfittingをして学習がゆがんでしまうのではないか。

Sample Selectionの手法でも、やはり一部の識別境界に近いNegative in Unlabeledがあいまいだということで、排除されてしまうという問題を抱えている。

Positiveへの過学習

DNNは学習能力が高いので、PositiveとPositive in Unlabeledの分布が一致しないとき、一致しないままで学習して過学習をしてしまうというものである。

Image in a image block

この図のように、TrainやTest問わずにNegative in Unlabeledが学習されていく。そして、Positive in Unlabeled(これあってる?与えられたPositiveとPositive in Unlabeled両方かも?)の学習が遅い上過学習しており、実際にはTest DataのPositiveのAccuracyが下がっていく

📄Arrow icon of a page link2023-NIPS-Beyond Myopia: Learning from Positive and Unlabeled Data through Holistic Predictive Trends にもあるように、識別境界がPositive側に食い込みすぎてしまうNegative Assumptionがある

Wasserstein距離による誤差上界

W1(PD,XD)W_1(P_D, X_D)を1次元ワッサースタイン距離=つまり普通のコストがすべて等しいときの最適輸送問題であるとする。双対によって、以下のことが成り立つ。ρ(f)\rho(f)ffの最小のリプシッツ定数(最小のってなんだよ)

W1(PD,XD)=supf:ρ(f)1{EPD[f(x)]EXD[f(x)]}W_1(P_D, X_D) = \sup_{f: \rho(f) \leq 1} \{ \mathbb{E}_{P_D}[f(\mathbf{x})] - \mathbb{E}_{X_D}[f(\mathbf{x})]\}

また、以下のように設定する。

RD(g)=EPD[(l(g(x))]R^D(g)=EXD[l(g(x))]R_D(g) = \mathbb{E}_{P_D}[(l(g(\mathbf{x}))] \\ \hat{R}_D(g) = \mathbb{E}_{X_D}[l(g(\mathbf{x}))]

すると、以下の式が成り立つ。これ自体はTaraglandの補題を応用して、リプシッツ定数を外に出して評価しているもの。RDR_Dは理想のデータの分布、XDX_Dは経験分布。つまり、ρ\rhoTalagrandの補題をつかい、集中不等式ではなくWasserstein距離による上界評価である

RD(g)R^D(g)ρ(lg)W1(PD,XD)R_D(g) - \hat{R}_D(g) \leq \rho(l\circ g) W_1(P_D, X_D)

これを用いることで、以下の定理が成り立つ。

絶対値損失関数l(g,y)=g(x)yl(g, y) = |g(x) - y|と、任意のリプシッツ連続なg:Rd[1,1]g: \mathbb{R}^d \to [-1, 1]を考える。Labeled PositiveがSCAR仮定に従うと、以下のように誤差上界が決まる。

Image in a image block
  • R^p(g)\hat{R}_{p^\prime}^-(g)pp^\primeがPositive in Unlabeledであり、それについてのl(g(x),1)l(g(\mathbf{x}), -1)についての経験リスク。
  • XpX_{p^\prime}はPositive in Unlabeledの経験分布である。
  • Rp+R_p^+は真のPositive分布における損失の和。

第2式は、同じl(g(x),1)l(g(\mathbf{x}),-1)についての損失でも、真のNegativeの分布による損失と、Negative in Unlabeledの経験損失はWasserstein距離で抑えられるということ。

これらの結果から以下のことが言える。

  • 訓練データがよく学習できている場合、R^p+\hat{R}_p^+などが小さいということである。この時、誤差上界を支配するのは一次のWasserstein距離とリプシッツ定数?である。
    • Wasserstein距離自体はDomain Shiftにおける評価指標なので、Domainが変わらない場合、ρ(lg)\rho(l \circ g)が小さい、つまり損失関数と識別器のgradientが小さいほうが望ましい。
  • 真のPositiveの分布と、Positive in UnlabeledにDomain Shiftが生じて、矛盾するようなDomain Shiftが得られた(間違ったラベルとか)とすると、識別器はなめらかではなくなりGradientが大きくなる。

実際のところ、以下のようにPやP in Uに大きなGradient Normが生まれている。これはρ(lg)\rho(l\circ g)がPやP in Uにおいて大きいという証拠である。与えたPのクラスで、できるだけ強いラベルの一貫性が欲しいってことかな

Image in a image block
  • ρ(lg)\rho(l \circ g)が小さければ小さいほどいいわけでもない。小さすぎると、誤差上界の左辺は2R^p(g)2 - \hat{R}_p ^-(g)が支配的になるということ。これが意味するものは、P in Uを完璧に学習したときに、Pはほぼ間違える=上界2の近くまで伸びうるということ
    • P in Uの学習と、Pの学習は上界から見るとトレードオフになっている。

提案手法

Gradientベースの正則化=Gradient Penaltyを加える。intintは、PとUからハイパーパラメタλ[0,1]\lambda \in [0,1]の割合でπ\piとは関係がないっぽい。

LGP(g)=Eint[xg(x)2]L_{GP}(g) = \mathbb{E}_{int}[ || \nabla_x g(\mathbf{x}) ||^2]

もし、過学習しない前提で小さい勾配を持った識別器によって訓練できるのならば、このGradient Penaltyはそうなるように仕向けられる

Pの訓練損失が増大することから、それを抑えるためにPの重みを大きくして減らす重要度を挙げてみる

wp(x;β)=1βlog(1+g(x)2)w_p(\mathbf{x};\beta) = 1 - \beta \log (\frac{1 + g(\mathbf{x})}{2})

これについて、識別器が+1+1と予測するほど少しだけ重みが増え、1-1に近い予測ほど大きく重みが増える。AdaBoostの式

全体的な学習の式は以下の通り。この式はnnPUとかのClass Priorを捨てて、AdaBoostにすべてを任せて学習していると考えられる

Image in a image block

損失関数は単純にl(g(x),y)=yg(x)l(g(\mathbf{x}), y) = |y - g(\mathbf{x})|にしている。

アルゴリズム

Image in a image block
  • 各ミニバッジごとに以下のように学習する。
    • Gradient Penaltyを計算するためのλ\lambdaを一様分布U(0,1)U(0, 1)から得る。
    • Gradient Penaltyを計算。
    • Adaboostのアルゴリズムを使って、Pの重みを計算。
      • そこで使われるβ\betaはAdaBoostの知見により、訓練とおなじタイミングで線形に増加をさせていく。
      • 訓練の後ろの方になればなるほど、大きく損失の重みの差がつけられるようにする。

実験とその結果

  • Gradient Penaltyは効果ある。妥当なAlphaを選ぶ限り。
Image in a image block
  • ほかの正則化、weight decay, dropout, mix-up, network boundと比較してもGradient Penaltyのほうがよかった。
  • AdaBoostのアルゴリズム通り、β\betaは線形に増やすべきですね。これがないと性能が壊れる。
  • 選択バイアスがあるとき、📄Arrow icon of a page link2019-ICLR-[PUSB]Learning from Positive and Unlabeled Data with a Selection Bias +nnPUと比べても、こっちのほうがよかったですね。